package com.rc.saas.tenant.model.invite;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.rc.saas.tenant.base.BaseModel;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;

public class MemberInviteSetting extends BaseModel {
    private Long inviteSettingId;

    private String tenantCode;

    private String inviteName;

    private String inviteType;

    private Long ticketTypeId;

    private Integer ticketTypeCount;

    private String status;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date beginTime;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;

    private BigDecimal gainRatio;

    private Integer gainLimit;

    private String ruleRemark;

    private String inviteRemark;

    private String createdBy;

    private Date createdTime;

    private String lastUpdatedBy;

    private Date lastUpdatedTime;

    public Long getInviteSettingId() {
        return inviteSettingId;
    }

    public void setInviteSettingId(Long inviteSettingId) {
        this.inviteSettingId = inviteSettingId;
    }

    public String getTenantCode() {
        return tenantCode;
    }

    public void setTenantCode(String tenantCode) {
        this.tenantCode = tenantCode;
    }

    public String getInviteName() {
        return inviteName;
    }

    public void setInviteName(String inviteName) {
        this.inviteName = inviteName;
    }

    public String getInviteType() {
        return inviteType;
    }

    public void setInviteType(String inviteType) {
        this.inviteType = inviteType;
    }

    public Long getTicketTypeId() {
        return ticketTypeId;
    }

    public void setTicketTypeId(Long ticketTypeId) {
        this.ticketTypeId = ticketTypeId;
    }

    public Integer getTicketTypeCount() {
        return ticketTypeCount;
    }

    public void setTicketTypeCount(Integer ticketTypeCount) {
        this.ticketTypeCount = ticketTypeCount;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public Date getBeginTime() {
        return beginTime;
    }

    public void setBeginTime(Date beginTime) {
        this.beginTime = beginTime;
    }

    public Date getEndTime() {
        return endTime;
    }

    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }

    public BigDecimal getGainRatio() {
        return gainRatio;
    }

    public void setGainRatio(BigDecimal gainRatio) {
        this.gainRatio = gainRatio;
    }

    public Integer getGainLimit() {
        return gainLimit;
    }

    public void setGainLimit(Integer gainLimit) {
        this.gainLimit = gainLimit;
    }

    public String getRuleRemark() {
        return ruleRemark;
    }

    public void setRuleRemark(String ruleRemark) {
        this.ruleRemark = ruleRemark;
    }

    public String getInviteRemark() {
        return inviteRemark;
    }

    public void setInviteRemark(String inviteRemark) {
        this.inviteRemark = inviteRemark;
    }

    public String getCreatedBy() {
        return createdBy;
    }

    public void setCreatedBy(String createdBy) {
        this.createdBy = createdBy;
    }

    public Date getCreatedTime() {
        return createdTime;
    }

    public void setCreatedTime(Date createdTime) {
        this.createdTime = createdTime;
    }

    public String getLastUpdatedBy() {
        return lastUpdatedBy;
    }

    public void setLastUpdatedBy(String lastUpdatedBy) {
        this.lastUpdatedBy = lastUpdatedBy;
    }

    public Date getLastUpdatedTime() {
        return lastUpdatedTime;
    }

    public void setLastUpdatedTime(Date lastUpdatedTime) {
        this.lastUpdatedTime = lastUpdatedTime;
    }

    @Override
    public String toString() {
        return "MemberInviteSetting{" +
                "inviteSettingId=" + inviteSettingId +
                ", tenantCode='" + tenantCode + '\'' +
                ", inviteName='" + inviteName + '\'' +
                ", inviteType='" + inviteType + '\'' +
                ", ticketTypeId=" + ticketTypeId +
                ", ticketTypeCount=" + ticketTypeCount +
                ", status='" + status + '\'' +
                ", beginTime=" + beginTime +
                ", endTime=" + endTime +
                ", ruleRemark='" + ruleRemark + '\'' +
                ", inviteRemark='" + inviteRemark + '\'' +
                '}';
    }
}